package com.zmn.oms.business.interfaces.xno;

import com.zmn.oms.model.dto.work.masterwork.DelayBindDTO;
import com.zmn.oms.model.dto.work.xno.XnoBindDTO;
import com.zmn.oms.model.dto.work.xno.XnoUnBindDTO;
import com.zmn.oms.model.entity.work.OrderWork;
import com.zmn.oms.model.vo.work.detail.ZsXnoBindVO;

import java.util.List;

/**
 * @author ：SongWeidong
 * @date ：2020/6/8 18:01
 * @description：小号相关操作
 */
public interface OrderXnoBindService {

    /**
     * 绑定小号
     *
     * @param xnoBindDTO
     * @return
     */
    void bind(XnoBindDTO xnoBindDTO);

    /**
     * 解绑
     *
     * @param xnoUnBindDTO
     */
    void unBind(XnoUnBindDTO xnoUnBindDTO);

    /**
     * 强制解绑
     *
     * @param xnoUnBindDTO
     */
    void unBindAll(XnoUnBindDTO xnoUnBindDTO);

    /**
     * 延绑
     *
     * @param delayBindDTOS
     * @return boolean
     */
    Boolean delayBind(List<DelayBindDTO> delayBindDTOS);

    /**
     * 查询小号绑定状态
     *
     * @param telephone
     * @return boolean
     */
    ZsXnoBindVO queryXNO(String masterMobile, String telephone, OrderWork orderWork);


    /**
     * 查询小号绑定状态
     *
     * @param telephone
     * @return boolean
     */
    ZsXnoBindVO queryUnBindXNO(String masterMobile, String telephone, OrderWork orderWork);

    /**
     * 检查是否需要重新绑定小号
     *
     * @param xnoUnBindDTO
     * @return
     */
    Boolean checkNeedRebind(XnoUnBindDTO xnoUnBindDTO);
}
